You are right, it's dynamic, however it's a different type of dynamic than in JS. The reason being that systems query components they operate on as opposed to coupling code with data.
Like you can't have a type mismatch with systems, since you get the data you queried.
Like you can't have a type mismatch with systems, since you get the data you queried.