Json Serialization

Why will this work with UnityEngine.UsonUtility.ToJson:

using System;
using System.Collections.Generic;

[Serializable]
public class MoveShipsCollection<T>
{
	public List<T> MoveShipsList = new List<T> ();

	public void Add (T item)
	{
		MoveShipsList.Add (item);
	}
}

var moveShipsCollection = MoveShipsCollection<MoveShips> moveShips = new MoveShipsCollection<MoveShips> ();
var json = JsonUtility.ToJson (moveShipsCollection);

But as part of this other class it I just get an empty string:

using System;
using System.Collections.Generic;

[Serializable]
public class MoveShipsJson
{
	public MoveShipsCollection<MoveShips> MoveShips;
	public InfinityMilitaryPiCarryCollection<InfinityMilitaryPiCarry> InfinityMilitaryPiCarrys;
}