Current design of capturing available spells processes ALL spell and domain lists regardless of the spellcasting capabilities of the PC. Given that large loads of data (e.g. eclipse has 24 levels of spells), it may be useful to have the MasterAvailableSpellInitializationFacet not do a brute force load on a per-PC basis. Rather it should maintain a master list of information and only load the data necessary for a PC (when the PC has the given lists).
The model used in skill costs (MasterSkillFacet) with a private (thus reused across PlayerCharacters) map that feeds into facets as necessary may be a better model.
(heap dump from a full DMG, PH, PH2, eclipse, etc. load shows >50MB of data driven by spells due to the loading of 140+ spellcasting class lists into the facet chain... for the example data loaded, the spells represented well over 50% of the total size of the PC in memory)
Committed revision 23595.