Fayti1703
Fayti1703
`IDisablableElement` should be `IDisableableElement`. The `Modulate` properties should also be renamed imo -- that's a verb, not a noun and they're `Color`s. `BaseRectButton` also implements `IClicableElement`, not `IClickableElement` (the definition...
Initial thoughts: 1. `Parent` should probably be a (nullable) `ElementInfo` with this system, at least for now. (DOM has the concept of a `ParentNode`, which applies to `Element`s, `DocumentFragment`s and...
> > 1. `Parent` should probably be a (nullable) `ElementInfo` with this system, at least for now. [...] > > Prefer to leave it so there is no need (if...
> > The problem isn't casting, the problem is that, say, a `TextNode` conceptually **cannot** be a parent node, whereas this API permits you to pass one in. > >...
> > If the restriction is _type-based_, why aren't we expressing that using the _type system_? > > Because its not. We literally have two types here, only one of...
I disagree on that -- the data is already there, just not as one thing. Collative, not generative.
> a new product that does not share anything with the original data It's made out of the concatenation of parts of the original data. That's not "not shar[ing] anything"....
I'd personally change the names and architecture a little -- specifically, I'd split `ElementInfo` into `NodeInfo` and `ElementInfo : NodeInfo` -- some operations that make sense on elements (e.g. anything...
> > I'd personally change the names and architecture a little -- specifically, I'd split `ElementInfo` into `NodeInfo` and `ElementInfo : NodeInfo` -- some operations that make sense on elements...
Something else: The [`As%Type%` methods for attributes](https://github.com/Arkhist/Hacknet-Pathfinder/pull/161/files#diff-22196198ef24bbe256e12ad0c8181b0f660f9d7142de10657318f507eba83847R260) specify the name as *literally* `attribute[key]`, resulting in `FormatException`s with text like `Value of 'attribute[key]' is not true or false`