Variables accessed with the dot operator have their hashes evaluated at compile time, but those accessed with the struct accessor have to have them evaluated at runtime
Edit: Struct lookups which can be determined at compile time now are, so there’s no difference between [$ “prop”] and .prop, but there still is for struct lookups from a variable.