protected override void Initialize( GameRulesBase rules, JObject data )
{
base.Initialize( rules, data );
Constraint = rules.CreateConstraint( (JObject) data["Constraint"] );
Requirement = ActionInvestmentDescriptor.FromData( (JObject) data["Requirement"] );
Returns = ActionReturnsDescriptor.FromData( (JObject) data["Returns"] );
if ( data.Value<string>( "Name" ) == null )
_name = DefaultName();
else
_name = data.Value<string>( "Name" );
if ( data.Value<string>( "Description" ) == null )
_description = DefaultDescription();
else
_description = data.Value<string>( "Description" );
}