Base Entity

In real life, as in any application, there is something invisible to the end user — the underlying structure on which everything else is built.

In a philosophical sense, it is something that precedes personality, before it is defined. In high-level programming languages, it is an abstract class, from which all "living" and "thinking" entities will inherit.

public abstract class BaseEntity
{
    public Guid Id { get; init; } = Guid.NewGuid();
    public DateTime CreatedAt { get; init; } = DateTime.UtcNow;
                            
    public virtual void Exist() => Console.WriteLine("Entity exists in space and time.");
    public virtual void ConsumeEnergy() => Console.WriteLine("Energy is being consumed.");
    public virtual void Replicate() => Console.WriteLine("Replicating self...");
                            
    public abstract void Evolve();
}

Id — a unique identifier for each entity.
Just like in a database, just like in life: every unit is unique, even if it doesn’t know it.

CreatedAt — timestamp of appearance.
From this moment on, the entity becomes a participant in the timeline.
It is not eternal, but the countdown has begun.

Exist() — A method common to all existence.
To be is the first function, requiring no conditions.
In high-level programming, a method is virtual because each entity can exist in its own way, but initially, it simply exists.

ConsumeEnergy() — Any program requires resources: CPU, RAM, electricity.
Any form of life provides energy: food, light, attention.
The very act of sustaining existence is already an activity.

Replicate() — Just as an object can be cloned, so living systems strive to transmit themselves further.
Replication is not a conscious choice, but an inherent mechanism in any system where there is the possibility of continuation.

Evolve() — The only method without implementation.
It demands that the heirs realize their unique form of development.
It is an invitation to freedom, to the transition from "I exist" to "I become."

BaseEntity is the foundation of all derived classes.
It doesn't know what an object will become in the future.
It defines: You exist. You consume. You can be extended.
You can evolve (if you implement Evolve()).

But what will you become?
That's a different class. A descendant.
Perhaps Human. Or something else.