By default ServiceStack only serializes public properties. To serialize public fields as well you need to set:
JsConfig.IncludePublicFields = true;
Also if you want to use inheritance you need to make the sub class abstract or an interface. See this answer for more info.