How to check a sequence of gameobjects and tell if it was correct or not?

Hey everyone!
Lately I came across an idea I couldn’t realize on my own yet, sadly.
So in my little game you have to redraw pictures of symbols, which have several so-called tracing points (2D polygone collider) placed on important points of the symbols. Ingame the mouse can draw over these symbol-templates and the name of the overdrawn tracing point will appear in the console log. So far so good. Now the last complicate step is to add the functionality of checking the tracing points, if they actually got overdrawn in the right sequence.
Right now I have no idea how to realize that and hope someone kinda understand what I’m talking about and how a solution could look like.

Every symbol is a simple gameobject with 2D polygone collider and the image with the template on it. A second gameobject is the symbols child in the hierachy, which has the tracing points as children of the child. The tracing points have 2D ploygone collider, as already said above.
This is how the script for the tracing points looks like for the debug.log right now:

using UnityEngine;
using System.Collections;

public class TracingPoint : MonoBehaviour {

	void OnMouseEnter (){
		if (Input.GetMouseButton (0)) {	
	
			Debug.Log (name);
		}
	}
	// Use this for initialization
	void Start () {	
	}
	
	// Update is called once per frame
	void Update () {	
	}
}

I thought about giving the first child a script for an gameobject array. Then I could drag and drop the children of it in there in the right order …sadly I have no idea if this thought is even near of a possible solution @_@ …just hope someone can help somehow.

Thank you in advance!!! ^ ^
Btw …if somethings is not clear pls ask!

using UnityEngine;

public class TracingPoint : MonoBehaviour
{
    //This is a number representing when this TracingPoint should be pressed
    //First, second third, etc
    public int OrderId;

    //Set this in the inspector
    public TracingPointOrderValidator Validator;

    void OnMouseEnter()
    {
        if (Input.GetMouseButton(0))
        {
            Debug.Log(name);
            Validator.TracingPointPressed(OrderId);
        }
    }
    // Use this for initialization
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
    }
}

This script will check if the tracing points were pressedin order.

using System.Collections.Generic;
using UnityEngine;

public class TracingPointOrderValidator : MonoBehaviour
{
    public TracingPoint[] TracingPoints;

    private List<int> pointsPressedOrder = new List<int>();

    public void TracingPointPressed(int pointId)
    {
        pointsPressedOrder.Add(pointId);
    }

    //Call this when you want to validate the order of the points
    public bool ValidatePressedOrder()
    {
        //check that we have
        bool pointsInOrder = true;

        //check that we have pressed each Tracing point, otherwise it can't possibly be in order
        if (TracingPoints.Length == pointsPressedOrder.Count)
        {
            for (int i = 1; i < pointsPressedOrder.Count; ++i)
            {
                if (pointsPressedOrder *!= i)*

{
pointsInOrder = false;
break;
}
}
}
else
{
pointsInOrder = false;
}

Debug.Log("Valid order: " + pointsInOrder);

return pointsInOrder;
}
}

You will always have to set the proper order by ordering all in hierarchy and using the transform.GetComponentInChildren wich will give you all the transform in the hierarchy order. Or making an array in order(both the same, the transform more automatic)