I would do
```ruby
module Core
  class Entity
    include ActiveModel::Validations

    attr_accessor :id

    validates_presence_of :id

    private :id=

    def initialize(id, attributes = {})
      self.id = id

      Array(attributes).each do |name, value|
        send("#{name}=", value)
      end
    end
  end
end
```
```ruby
module Core
  class Article < Entity
    attr_accessor :title, :description, :body

    validates_presence_of :id, :title, :body
  end
end
```

```ruby
module Core
  class ActionPlan < Article
  end
end
```