For option 2 to be meaningful, the entity needs to have visibility of the type (for its port declaration), in addition to the architecture.
Also, somewhere outside the entity, will other signals or entities’ ports need this same type definition? IINM, if two instances of a generic package define a type, those two types are not the same type, and are not compatible, even if the same generic actuals were used on both package instances.
Andy