Marked UrlLocation properties as required in ResourceDefinition for improved null safety. Changed OrderedLinkGenerator to use the more general IStateChangeBehaviour instead of NumberedStateChanger, increasing flexibility.