This makes that Garrisonable sets the IsGarrisoned-flag on an entity with UnitAI, so that it cannot be forgotten when introducing new code or moving existing code.
It makes sense because the only way of garrisoning an entity is via the Garrisonable.
rP9498 Introduced the flag, but I have no clue as to why it did not use the GarrisonHolder for it did mention that in the related ticket.
See discussion in D1403. There the meaning of the UnitAI's isGarrisoned was discussed:
- To be in a "GARRISON" FSM state.
- To have a "GarrisonHolder" (i.e. actually be garrisoned, no matter what the state or order is).
I opted for the latter, since a turret is not in the "GARRISON" FSM state, but _is_ garrisoned.