PREREQ Cleanup
Background
We have identified that a key issue with Prerequisites in the LST code is that they are used in 2 forms. We will call these forms Requirements and True Prerequisites. It is our intent to be able to break out the current PRExxx tokens, so that the two forms are clearly distinguishable in the LST code, in order to provide greater flexlbility and control over how data is processed. In order to make this change, there are 2 major architecture changes that need to take place in PCGen (1) The Prerequisite objects within PCGen need to be updated to be type safe. Today they are all storing objects as strings (2) The loading system needs to be able to handle Requirements and True Prerequisites.
Terminology
PRExxx: Today we have Prerequisite tokens in the LST data. These take the form PRExxx: where xxx is a varied String representing the type of Prerequisite. Requirements: Things that should be enforced on a Player Characeter forever, and with every change to the character. Think the "Lawful Good" alignment for a Paladin as serving in this form. True Prerequisites: Things that are enforced only at the time the item is taken, and are never enforced after that point, even if the character no longer passes the prerequisite (typically these can be rules mechanisms that allow you to take one of a set of things in a dataset that doesn't use Ability pools) Old Prerequisites: Things that are structured in the current PRExxx form, and may serve as either Requirements or True Prerequisites
Projects
Prerequisite Architecture Work: Prerequisite-using Token rebuild